package cn.csc.module.pay.api.notify.dto;

import cn.csc.module.pay.enums.order.PayOrderStatusEnum;
import cn.csc.module.pay.enums.refund.PayRefundTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigInteger;
import java.time.LocalDateTime;

/**
 * 支付单的通知 Request DTO
 *
 * @author
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PayOrderNotifyReqDTO {

    /**
     * 商户订单编号
     */
    @NotEmpty(message = "商户订单号不能为空")
    private String merchantOrderId;

    /**
     * 支付订单编号
     */
    @NotNull(message = "支付订单编号不能为空")
    private BigInteger payOrderId;

    /**
     * 支付状态
     *
     * 枚举 {@link PayOrderStatusEnum}
     */
    private Integer orderStatus;

    /**
     * 扩展订单编号
     */
    private String orderExtensionNo;

    // ================兼容旧逻辑================
    /**
     * 商户订单编号，同merchantOrderId
     */
    private String orderNo;

    /**
     * 支付成功时间
     */
    private String payTime;

}
